//
// Created by PC on 2023/10/17.
// GESP 2023.9 五级 编程1
/*
 *  OJ: https://www.luogu.com.cn/problem/B3871
 *  通过 优化了: 不遍历到n,遍历到根号n就可以,然后再补个尾巴就行
 * 试题名称：因数分解
时间限制：1.0 s
内存限制：128.0 MB
第一题 因数分解
【问题描述】
每个正整数都可以分解成素数的乘积，例如：6=2×3、20=2²×5
现在，给定一个正整数N，请按要求输出它的因数分解式。
【输入描述】
输入第一行，包含一个正整数N。约定2≤N≤10^12。
【输出描述】
输出一行，为N的因数分解式。要求按质因数由小到大排列，乘号用星号*表示，且左右各空一格。当且仅当一个素 数出现多次时，将它们合并为指数形式，用上箭头^表示，且左右不空格。
3.1.4 样例输入1
6
3.1.5 样例输出1
2 * 3
3.1.6 样例输入2
20
3.1.7 样例输出2
2^2 * 5
3.1.8 样例输入3
23
3.1.9 样例输出3
23
 * */
//

#include <iostream>
using namespace std;
int main() {
    long long n = 6;
    n=3628800;
    n=10000000;
//    n=9;
//    n=555;
//    n=23;
//    cin >> n;
    bool first=true;
    for (long long i = 2; i*i <= n ; ++i)
    {
        if(n%i!=0)
            continue;
        int power=0;
        while(n%i==0)
        {
            ++power;
            n/=i;
        }
        if(!first)
        {
            cout<<" * "<<i;
        }else{
            cout<<i;
            first=false;
        }
        if(power>1)
        {
            cout<<'^'<<power;
        }
    }
    if(n>1)
    {
        if(first)
            cout<<n;
        else{
            cout<<" * "<<n;
        }
    }
    return 0;
}
